home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Disc to the Future 2
/
Disc to the Future Part II Programmer's Reference (Wayzata Technology)(6013)(1992).bin
/
MAC
/
MPW_TOOL
/
TOOLS
/
TOOLS_WI
/
ICON_8
/
ICONT_FO
/
PARSE.C
< prev
next >
Wrap
Text File
|
1990-03-02
|
32KB
|
1,057 lines
# define CSETLIT 257
# define EOFX 258
# define IDENT 259
# define INTLIT 260
# define REALLIT 261
# define STRINGLIT 262
# define BREAK 263
# define BY 264
# define CASE 265
# define CREATE 266
# define DEFAULT 267
# define DO 268
# define ELSE 269
# define END 270
# define EVERY 271
# define FAIL 272
# define GLOBAL 273
# define IF 274
# define INITIAL 275
# define LINK 276
# define LOCAL 277
# define NEXT 278
# define NOT 279
# define OF 280
# define PROCEDURE 281
# define RECORD 282
# define REPEAT 283
# define RETURN 284
# define STATIC 285
# define SUSPEND 286
# define THEN 287
# define TO 288
# define UNTIL 289
# define WHILE 290
# define ASSIGN 291
# define AT 292
# define AUGACT 293
# define AUGAND 294
# define AUGEQ 295
# define AUGEQV 296
# define AUGGE 297
# define AUGGT 298
# define AUGLE 299
# define AUGLT 300
# define AUGNE 301
# define AUGNEQV 302
# define AUGSEQ 303
# define AUGSGE 304
# define AUGSGT 305
# define AUGSLE 306
# define AUGSLT 307
# define AUGSNE 308
# define BACKSLASH 309
# define BANG 310
# define BAR 311
# define CARET 312
# define CARETASGN 313
# define COLON 314
# define COMMA 315
# define CONCAT 316
# define CONCATASGN 317
# define CONJUNC 318
# define DIFF 319
# define DIFFASGN 320
# define DOT 321
# define EQUIV 322
# define INTER 323
# define INTERASGN 324
# define LBRACE 325
# define LBRACK 326
# define LCONCAT 327
# define LCONCATASGN 328
# define LEXEQ 329
# define LEXGE 330
# define LEXGT 331
# define LEXLE 332
# define LEXLT 333
# define LEXNE 334
# define LPAREN 335
# define MCOLON 336
# define MINUS 337
# define MINUSASGN 338
# define MOD 339
# define MODASGN 340
# define NOTEQUIV 341
# define NUMEQ 342
# define NUMGE 343
# define NUMGT 344
# define NUMLE 345
# define NUMLT 346
# define NUMNE 347
# define PCOLON 348
# define PLUS 349
# define PLUSASGN 350
# define QMARK 351
# define RBRACE 352
# define RBRACK 353
# define REVASSIGN 354
# define REVSWAP 355
# define RPAREN 356
# define SCANASGN 357
# define SEMICOL 358
# define SLASH 359
# define SLASHASGN 360
# define STAR 361
# define STARASGN 362
# define SWAP 363
# define TILDE 364
# define UNION 365
# define UNIONASGN 366
# line 138 "expanded.g"
#include "::h:config.h"
#include "tproto.h"
#include "trans.h"
#include "tsym.h"
#include "tree.h"
#include "::h:keyword.h"
#define YYSTYPE nodeptr
#define YYMAXDEPTH 500
extern int fncargs[];
int idflag;
int id_cnt;
int key_num;
#define yyclearin yychar = -1
#define yyerrok yyerrflag = 0
extern int yychar;
extern short yyerrflag;
#ifndef YYMAXDEPTH
#define YYMAXDEPTH 150
#endif
#ifndef YYSTYPE
#define YYSTYPE int
#endif
YYSTYPE yylval, yyval;
# define YYERRCODE 256
# line 431 "expanded.g"
short yyexca[] ={
-1, 1,
0, -1,
-2, 0,
-1, 18,
358, 35,
-2, 33,
-1, 103,
358, 35,
-2, 33,
-1, 109,
358, 35,
-2, 33,
};
# define YYNPROD 196
# define YYLAST 784
short yyact[]={
32, 88, 163, 78, 85, 86, 87, 80, 167, 93,
77, 343, 110, 348, 220, 96, 89, 303, 92, 349,
165, 18, 79, 45, 169, 109, 335, 97, 90, 314,
91, 301, 162, 95, 94, 301, 44, 301, 302, 110,
345, 319, 111, 325, 168, 177, 166, 342, 164, 175,
174, 340, 317, 67, 50, 46, 55, 316, 222, 176,
47, 102, 84, 51, 331, 49, 63, 56, 110, 82,
83, 48, 326, 61, 346, 304, 300, 310, 62, 81,
324, 58, 350, 160, 321, 66, 59, 220, 110, 309,
306, 60, 351, 52, 161, 65, 110, 308, 336, 35,
110, 305, 220, 54, 307, 53, 323, 100, 57, 64,
32, 88, 206, 78, 85, 86, 87, 80, 322, 93,
77, 110, 315, 17, 318, 96, 89, 110, 92, 108,
99, 22, 79, 45, 23, 172, 210, 97, 90, 110,
91, 311, 110, 95, 94, 299, 44, 110, 105, 209,
106, 110, 171, 173, 101, 170, 26, 3, 107, 38,
31, 21, 320, 67, 50, 46, 55, 98, 341, 25,
47, 204, 84, 51, 28, 49, 63, 56, 2, 82,
83, 48, 15, 61, 12, 296, 76, 13, 62, 81,
75, 58, 14, 10, 74, 66, 59, 73, 72, 40,
71, 60, 70, 52, 69, 65, 295, 68, 39, 43,
41, 36, 34, 54, 104, 53, 4, 312, 57, 64,
32, 88, 24, 78, 85, 86, 87, 80, 103, 93,
77, 12, 27, 11, 13, 96, 89, 223, 92, 14,
10, 16, 79, 45, 263, 264, 19, 97, 90, 20,
91, 9, 8, 95, 94, 208, 44, 7, 6, 5,
1, 0, 221, 0, 0, 0, 0, 0, 0, 0,
224, 229, 226, 67, 50, 46, 55, 0, 225, 0,
47, 0, 84, 51, 228, 49, 63, 56, 0, 82,
83, 48, 0, 61, 0, 0, 0, 0, 62, 81,
0, 58, 0, 0, 0, 66, 59, 0, 0, 0,
0, 60, 0, 52, 0, 65, 0, 0, 0, 0,
279, 280, 0, 54, 0, 53, 0, 0, 57, 64,
88, 0, 78, 85, 86, 87, 80, 0, 93, 77,
0, 0, 0, 0, 96, 89, 0, 92, 298, 0,
0, 79, 45, 0, 0, 0, 97, 90, 0, 91,
0, 0, 95, 94, 0, 44, 285, 286, 287, 288,
289, 281, 282, 283, 284, 0, 0, 0, 0, 0,
0, 0, 67, 50, 46, 55, 30, 0, 0, 47,
313, 84, 51, 0, 49, 63, 56, 352, 82, 83,
48, 0, 61, 0, 0, 0, 0, 62, 81, 0,
58, 0, 0, 0, 66, 59, 328, 0, 337, 0,
60, 0, 52, 0, 65, 0, 0, 0, 0, 0,
0, 0, 54, 0, 53, 0, 144, 57, 64, 113,
0, 143, 142, 127, 128, 129, 130, 131, 132, 133,
134, 135, 136, 137, 138, 139, 140, 29, 0, 0,
0, 126, 0, 0, 202, 116, 0, 0, 118, 0,
0, 0, 123, 0, 33, 0, 117, 0, 213, 214,
215, 216, 217, 218, 219, 0, 121, 0, 125, 37,
0, 0, 227, 0, 0, 0, 0, 0, 120, 0,
0, 145, 115, 114, 0, 141, 0, 0, 124, 0,
122, 112, 158, 0, 119, 0, 0, 42, 0, 146,
147, 148, 149, 150, 151, 0, 0, 0, 0, 0,
0, 159, 152, 153, 154, 155, 156, 157, 203, 205,
207, 205, 0, 0, 0, 0, 0, 0, 211, 212,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 294, 178, 179, 180, 181, 182, 183, 184, 185,
186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
196, 197, 198, 199, 200, 201, 230, 231, 232, 233,
234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
254, 255, 256, 257, 258, 259, 260, 261, 262, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 293, 297, 205, 0, 265, 266, 267, 268,
269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 290,
291, 292, 329, 330, 0, 332, 333, 334, 0, 0,
0, 0, 0, 0, 0, 0, 0, 338, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 344, 0,
0, 0, 0, 0, 0, 0, 0, 347, 0, 0,
0, 0, 0, 0, 0, 0, 344, 353, 354, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 327,
0, 207, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 339 };
short yypact[]={
-99,-1000, -42,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
-1000,-235,-1000,-128,-1000, -89,-103,-1000, -36,-129,
-208,-1000,-1000,-1000,-105,-1000,-274,-127,-141,-333,
-250,-309,-1000,-1000, 148,-1000, 190,-233,-317,-315,
-1000,-157,-1000,-276, 73, 73, 73, 73, 73, 73,
73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
73, 73, 73, 73, 73, 73, 73, 73,-1000,-1000,
-1000,-1000,-1000,-1000,-1000,-1000,-1000, -36,-1000,-1000,
-36, -36, -36, -36,-123,-1000,-1000,-1000,-1000,-1000,
-36, -36, -36, -36, -36, -36, -36, -36,-213,-1000,
-128,-277,-129, -36,-129, -36,-1000,-1000,-1000, -36,
73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
73, 73, 73, 73, -36,-146, -36,-114,-1000,-1000,
-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
-1000,-1000,-250,-1000,-280,-1000,-314,-341,-278,-1000,
-1000,-1000,-1000,-167,-197,-176,-171,-179,-191,-250,
-118,-1000,-129,-327,-213,-148,-301,-306,-1000,-309,
-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
-1000,-1000,-1000,-140,-1000,-233,-233,-233,-233,-233,
-233,-233,-233,-233,-233,-233,-233,-233,-233,-317,
-317,-315,-315,-315,-315,-1000,-1000,-1000,-1000,-1000,
-1000,-1000,-1000,-312,-230,-1000,-272,-1000,-284,-1000,
-1000, -36,-1000, -36,-1000, -36, -36,-261, -36, -36,
-36,-1000,-330,-228,-1000,-1000,-1000,-1000, 73,-1000,
-36,-1000,-1000,-1000,-1000, -36,-1000,-1000,-1000,-250,
-218,-256,-250,-250,-250,-1000,-313,-1000,-279,-1000,
-36,-339,-1000,-232,-222,-1000,-1000,-250,-1000,-256,
-36, -36,-1000,-250,-250 };
short yypgo[]={
0, 260, 178, 259, 258, 257, 252, 251, 249, 161,
246, 167, 241, 237, 233, 232, 228, 174, 222, 217,
214, 386, 457, 160, 474, 212, 99, 211, 489, 159,
208, 199, 210, 517, 209, 207, 204, 202, 200, 198,
197, 194, 190, 186, 171, 112, 185, 168, 47, 162 };
short yyr1[]={
0, 1, 2, 2, 3, 3, 3, 3, 7, 8,
8, 9, 9, 10, 6, 12, 4, 13, 13, 5,
18, 14, 19, 19, 19, 11, 11, 15, 15, 20,
20, 16, 16, 17, 17, 22, 22, 21, 21, 23,
23, 24, 24, 24, 24, 24, 24, 24, 24, 24,
24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
24, 24, 24, 24, 25, 25, 25, 26, 26, 27,
27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
27, 27, 27, 27, 28, 28, 28, 29, 29, 29,
29, 29, 30, 30, 30, 30, 30, 31, 31, 32,
32, 32, 32, 33, 33, 33, 33, 33, 33, 33,
33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
33, 33, 33, 33, 33, 33, 33, 33, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 40, 40, 41, 41, 42, 42, 43, 37, 37,
37, 37, 38, 38, 39, 47, 47, 48, 48, 44,
44, 46, 46, 35, 35, 35, 35, 36, 49, 49,
49, 45, 45, 1, 5, 21 };
short yyr2[]={
0, 2, 0, 2, 1, 1, 1, 1, 2, 1,
3, 1, 1, 0, 3, 0, 6, 0, 1, 6,
0, 6, 0, 1, 3, 1, 3, 0, 4, 1,
1, 0, 3, 0, 3, 0, 1, 1, 3, 1,
3, 1, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 1, 3, 5, 1, 3, 1,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 1, 3, 3, 1, 3, 3,
3, 3, 1, 3, 3, 3, 3, 1, 3, 1,
3, 3, 3, 1, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 1, 1,
1, 1, 1, 1, 1, 1, 1, 2, 1, 1,
2, 3, 3, 3, 4, 3, 4, 4, 3, 2,
2, 2, 4, 2, 4, 2, 4, 2, 1, 2,
2, 4, 4, 6, 6, 1, 3, 3, 3, 1,
3, 1, 3, 1, 1, 1, 1, 6, 1, 1,
1, 1, 3, 3, 4, 1 };
short yychk[]={
-1000, -1, -2, 256, 258, -3, -4, -5, -6, -7,
282, -14, 273, 276, 281, -2, -12, 358, 256, -10,
-8, -9, 259, 262, -18, 258, 259, -15, -17, -22,
-21, -23, 256, -24, -25, -26, -27, -28, -29, -30,
-31, -32, -33, -34, 292, 279, 311, 316, 327, 321,
310, 319, 349, 361, 359, 312, 323, 364, 337, 342,
347, 329, 334, 322, 365, 351, 341, 309, -35, -36,
-37, -38, -39, -40, -41, -42, -43, 266, 259, 278,
263, 335, 325, 326, 318, 260, 261, 262, 257, 272,
284, 286, 274, 265, 290, 289, 271, 283, -11, 259,
315, 259, 335, -16, -20, 275, 277, 285, 270, 358,
318, 351, 363, 291, 355, 354, 317, 328, 320, 366,
350, 338, 362, 324, 360, 340, 313, 295, 296, 297,
298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
308, 357, 294, 293, 288, 311, 329, 330, 331, 332,
333, 334, 342, 343, 344, 345, 346, 347, 322, 341,
316, 327, 349, 319, 365, 337, 361, 323, 359, 339,
312, 309, 292, 310, 326, 325, 335, 321, -33, -33,
-33, -33, -33, -33, -33, -33, -33, -33, -33, -33,
-33, -33, -33, -33, -33, -33, -33, -33, -33, -33,
-33, -33, -21, -22, -44, -22, -45, -22, -44, 272,
259, -22, -22, -21, -21, -21, -21, -21, -21, -21,
315, -9, 335, -13, -11, -17, -11, -21, -17, -23,
-24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
-24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
-24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
-24, -24, -24, -26, -26, -28, -28, -28, -28, -28,
-28, -28, -28, -28, -28, -28, -28, -28, -28, -29,
-29, -30, -30, -30, -30, -31, -31, -31, -31, -31,
-33, -33, -33, -22, -21, 352, -46, -22, -44, 259,
356, 315, 352, 358, 353, 268, 287, 280, 268, 268,
268, 259, -19, -11, 356, 270, 358, 358, 264, 353,
-49, 314, 348, 336, 352, 315, 356, -22, -45, -21,
-21, 325, -21, -21, -21, 356, 326, -26, -21, -22,
269, -47, -48, 267, -21, 353, 353, -21, 352, 358,
314, 314, -48, -21, -21 };
short yydef[]={
2, -2, 0, 2, 1, 3, 4, 5, 6, 7,
15, 0, 13, 0, 20, 0, 0, 27, -2, 0,
8, 9, 11, 12, 0, 193, 0, 31, 0, 0,
36, 37, 195, 39, 41, 74, 77, 79, 94, 97,
102, 107, 109, 113, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 138, 139,
140, 141, 142, 143, 144, 145, 146, 0, 148, 149,
35, 35, 35, 35, 0, 183, 184, 185, 186, 168,
35, 35, 0, 0, 0, 0, 0, 0, 14, 25,
0, 0, 17, -2, 0, 0, 29, 30, 194, -2,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 35, 35, 35, 0, 114, 115,
116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
136, 137, 147, 150, 0, 179, 0, 191, 0, 159,
160, 169, 170, 36, 0, 0, 161, 163, 165, 167,
0, 10, 22, 0, 18, 0, 0, 0, 34, 38,
40, 42, 43, 44, 45, 46, 47, 48, 49, 50,
51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
71, 72, 73, 75, 78, 80, 81, 82, 83, 84,
85, 86, 87, 88, 89, 90, 91, 92, 93, 95,
96, 98, 99, 100, 101, 103, 104, 105, 106, 108,
110, 111, 112, 0, 36, 155, 0, 181, 0, 158,
151, 35, 152, 35, 153, 0, 0, 0, 0, 0,
0, 26, 0, 23, 16, 19, 28, 32, 0, 154,
0, 188, 189, 190, 156, 35, 157, 180, 192, 171,
172, 0, 162, 164, 166, 21, 0, 76, 0, 182,
0, 0, 175, 0, 0, 24, 187, 173, 174, 0,
0, 0, 176, 177, 178 };
#ifndef lint
static char yaccpar_sccsid[] = "@(#)yaccpar 4.1 (Berkeley) 2/11/83";
#endif
# define YYFLAG -1000
# define YYERROR goto yyerrlab
# define YYACCEPT return(0)
# define YYABORT return(1)
/* parser for yacc output */
#ifdef YYDEBUG
int yydebug = 0; /* 1 for debugging */
#endif
YYSTYPE yyv[YYMAXDEPTH]; /* where the values are stored */
int yychar = -1; /* current input token number */
int yynerrs = 0; /* number of errors */
short yyerrflag = 0; /* error recovery flag */
yyparse() {
short yys[YYMAXDEPTH];
short yyj, yym;
register YYSTYPE *yypvt;
register short yystate, *yyps, yyn;
register YYSTYPE *yypv;
register short *yyxi;
yystate = 0;
yychar = -1;
yynerrs = 0;
yyerrflag = 0;
yyps= &yys[-1];
yypv= &yyv[-1];
yystack: /* put a state and value onto the stack */
#ifdef YYDEBUG
if( yydebug ) printf( "state %d, char 0%o\n", yystate, yychar );
#endif
if( ++yyps> &yys[YYMAXDEPTH] ) { tsyserr( "parse stack overflow" ); return(1); }
*yyps = yystate;
++yypv;
*yypv = yyval;
yynewstate:
yyn = yypact[yystate];
if( yyn<= YYFLAG ) goto yydefault; /* simple state */
if( yychar<0 ) if( (yychar=yylex())<0 ) yychar=0;
if( (yyn += yychar)<0 || yyn >= YYLAST ) goto yydefault;
if( yychk[ yyn=yyact[ yyn ] ] == yychar ){ /* valid shift */
yychar = -1;
yyval = yylval;
yystate = yyn;
if( yyerrflag > 0 ) --yyerrflag;
goto yystack;
}
yydefault:
/* default state action */
if( (yyn=yydef[yystate]) == -2 ) {
if( yychar<0 ) if( (yychar=yylex())<0 ) yychar = 0;
/* look through exception table */
for( yyxi=yyexca; (*yyxi!= (-1)) || (yyxi[1]!=yystate) ; yyxi += 2 ) ; /* VOID */
while( *(yyxi+=2) >= 0 ){
if( *yyxi == yychar ) break;
}
if( (yyn = yyxi[1]) < 0 ) return(0); /* accept */
}
if( yyn == 0 ){ /* error */
/* error ... attempt to resume parsing */
switch( yyerrflag ){
case 0: /* brand new error */
yyerror( yychar, yylval, yystate );
yyerrlab:
++yynerrs;
case 1:
case 2: /* incompletely recovered error ... try again */
yyerrflag = 3;
/* find a state where "error" is a legal shift action */
while ( yyps >= yys ) {
yyn = yypact[*yyps] + YYERRCODE;
if( yyn>= 0 && yyn < YYLAST && yychk[yyact[yyn]] == YYERRCODE ){
yystate = yyact[yyn]; /* simulate a shift of "error" */
goto yystack;
}
yyn = yypact[*yyps];
/* the current yyps has no shift onn "error", pop stack */
#ifdef YYDEBUG
if( yydebug ) printf( "error recovery pops state %d, uncovers %d\n", *yyps, yyps[-1] );
#endif
--yyps;
--yypv;
}
/* there is no state on the stack with an error shift ... abort */
yyabort:
return(1);
case 3: /* no shift yet; clobber input char */
#ifdef YYDEBUG
if( yydebug ) printf( "error recovery discards char %d\n", yychar );
#endif
if( yychar == 0 ) goto yyabort; /* don't discard EOF, quit */
yychar = -1;
goto yynewstate; /* try again in the same state */
}
}
/* reduction by production yyn */
#ifdef YYDEBUG
if( yydebug ) printf("reduce %d\n",yyn);
#endif
yyps -= yyr2[yyn];
yypvt = yypv;
yypv -= yyr2[yyn];
yyval = yypv[1];
yym=yyn;
/* consult goto table to find next state */
yyn = yyr1[yyn];
yyj = yypgo[yyn] + *yyps + 1;
if( yyj>=YYLAST || yychk[ yystate = yyact[yyj] ] != -yyn ) yystate = yyact[yypgo[yyn]];
switch(yym){
case 1:
# line 161 "expanded.g"
{gout(globfile);} break;
case 4:
# line 166 "expanded.g"
{if (!nocode)
rout(globfile, Str0(yypvt[-0]));
nocode = 0;
loc_init();} break;
case 5:
# line 170 "expanded.g"
{if (!nocode)
codegen(yypvt[-0]);
nocode = 0;
treeinit();
loc_init();} break;
case 6:
# line 175 "expanded.g"
{;} break;
case 7:
# line 176 "expanded.g"
{;} break;
case 8:
# line 178 "expanded.g"
{;} break;
case 10:
# line 181 "expanded.g"
{;} break;
case 11:
# line 183 "expanded.g"
{addlfile(Str0(yypvt[-0]));} break;
case 12:
# line 184 "expanded.g"
{addlfile(Str0(yypvt[-0]));} break;
case 13:
# line 186 "expanded.g"
{idflag = F_Global;} break;
case 14:
# line 186 "expanded.g"
{;} break;
case 15:
# line 188 "expanded.g"
{idflag = F_Argument;} break;
case 16:
# line 188 "expanded.g"
{
install(Str0(yypvt[-3]),F_Record|F_Global,id_cnt);
yyval = yypvt[-3];
} break;
case 17:
# line 193 "expanded.g"
{id_cnt = 0;} break;
case 18:
# line 194 "expanded.g"
{;} break;
case 19:
# line 196 "expanded.g"
{
yyval = tree6(N_Proc,yypvt[-5],yypvt[-5],yypvt[-2],yypvt[-1],yypvt[-0]);
} break;
case 20:
# line 200 "expanded.g"
{idflag = F_Argument;} break;
case 21:
# line 200 "expanded.g"
{
yyval = yypvt[-3];
install(Str0(yypvt[-3]),F_Proc|F_Global,id_cnt);
} break;
case 22:
# line 205 "expanded.g"
{id_cnt = 0;} break;
case 23:
# line 206 "expanded.g"
{;} break;
case 24:
# line 207 "expanded.g"
{id_cnt = -id_cnt;} break;
case 25:
# line 210 "expanded.g"
{
install(Str0(yypvt[-0]),idflag,0);
id_cnt = 1;
} break;
case 26:
# line 214 "expanded.g"
{
install(Str0(yypvt[-0]),idflag,0);
++id_cnt;
} break;
case 27:
# line 219 "expanded.g"
{;} break;
case 28:
# line 220 "expanded.g"
{;} break;
case 29:
# line 222 "expanded.g"
{idflag = F_Dynamic;} break;
case 30:
# line 223 "expanded.g"
{idflag = F_Static;} break;
case 31:
# line 225 "expanded.g"
{yyval = tree1(N_Empty) ;} break;
case 32:
# line 226 "expanded.g"
{yyval = yypvt[-1];} break;
case 33:
# line 228 "expanded.g"
{yyval = tree1(N_Empty) ;} break;
case 34:
# line 229 "expanded.g"
{yyval = tree4(N_Slist,yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
case 35:
# line 231 "expanded.g"
{yyval = tree1(N_Empty) ;} break;
case 38:
# line 235 "expanded.g"
{yyval = tree5(N_Conj,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
case 40:
# line 238 "expanded.g"
{yyval = tree5(N_Scan,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
case 42:
# line 241 "expanded.g"
case 43:
# line 242 "expanded.g"
case 44:
# line 243 "expanded.g"
case 45:
# line 244 "expanded.g"
{yyval = tree5(N_Binop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 46:
# line 245 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 47:
# line 246 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 48:
# line 247 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 49:
# line 248 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 50:
# line 249 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 51:
# line 250 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 52:
# line 251 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 53:
# line 252 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 54:
# line 253 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 55:
# line 254 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 56:
# line 255 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 57:
# line 256 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 58:
# line 257 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 59:
# line 258 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 60:
# line 259 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 61:
# line 260 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 62:
# line 261 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 63:
# line 262 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 64:
# line 263 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 65:
# line 264 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 66:
# line 265 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 67:
# line 266 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 68:
# line 267 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 69:
# line 268 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 70:
# line 269 "expanded.g"
{yyval = tree5(N_Augop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 71:
# line 270 "expanded.g"
{yyval = tree5(N_Scan,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
case 72:
# line 271 "expanded.g"
{yyval = tree5(N_Conj,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
case 73:
# line 272 "expanded.g"
{yyval = tree5(N_Activat,yypvt[-1],yypvt[-1],yypvt[-0],yypvt[-2]) ;} break;
case 75:
# line 275 "expanded.g"
{yyval = tree4(N_To,yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
case 76:
# line 276 "expanded.g"
{yyval = tree5(N_ToBy,yypvt[-3],yypvt[-4],yypvt[-2],yypvt[-0]) ;} break;
case 78:
# line 279 "expanded.g"
{yyval = tree4(N_Alt,yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
case 80:
# line 282 "expanded.g"
case 81:
# line 283 "expanded.g"
case 82:
# line 284 "expanded.g"
case 83:
# line 285 "expanded.g"
case 84:
# line 286 "expanded.g"
case 85:
# line 287 "expanded.g"
case 86:
# line 288 "expanded.g"
case 87:
# line 289 "expanded.g"
case 88:
# line 290 "expanded.g"
case 89:
# line 291 "expanded.g"
case 90:
# line 292 "expanded.g"
case 91:
# line 293 "expanded.g"
case 92:
# line 294 "expanded.g"
case 93:
# line 295 "expanded.g"
case 95:
# line 298 "expanded.g"
case 96:
# line 299 "expanded.g"
case 98:
# line 302 "expanded.g"
case 99:
# line 303 "expanded.g"
case 100:
# line 304 "expanded.g"
case 101:
# line 305 "expanded.g"
case 103:
# line 308 "expanded.g"
case 104:
# line 309 "expanded.g"
case 105:
# line 310 "expanded.g"
case 106:
# line 311 "expanded.g"
case 108:
# line 314 "expanded.g"
{yyval = tree5(N_Binop,yypvt[-1],yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 110:
# line 317 "expanded.g"
{yyval = tree4(N_Limit,yypvt[-2],yypvt[-2],yypvt[-0]) ;} break;
case 111:
# line 318 "expanded.g"
{yyval = tree5(N_Activat,yypvt[-1],yypvt[-1],yypvt[-0],yypvt[-2]) ;} break;
case 112:
# line 319 "expanded.g"
{yyval = tree4(N_Apply,yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
case 114:
# line 322 "expanded.g"
{yyval = tree5(N_Activat,yypvt[-1],yypvt[-1],yypvt[-0],tree1(N_Empty) ) ;} break;
case 115:
# line 323 "expanded.g"
{yyval = tree3(N_Not,yypvt[-0],yypvt[-0]) ;} break;
case 116:
# line 324 "expanded.g"
{yyval = tree3(N_Bar,yypvt[-0],yypvt[-0]) ;} break;
case 117:
# line 325 "expanded.g"
{yyval = tree3(N_Bar,yypvt[-0],yypvt[-0]) ;} break;
case 118:
# line 326 "expanded.g"
{yyval = tree3(N_Bar,yypvt[-0],yypvt[-0]) ;} break;
case 119:
# line 327 "expanded.g"
{yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
case 120:
# line 328 "expanded.g"
{yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
case 121:
# line 329 "expanded.g"
{yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
case 122:
# line 330 "expanded.g"
{yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
case 123:
# line 331 "expanded.g"
{yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
case 124:
# line 332 "expanded.g"
{yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
case 125:
# line 333 "expanded.g"
{yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
case 126:
# line 334 "expanded.g"
{yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
case 127:
# line 335 "expanded.g"
{yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
case 128:
# line 336 "expanded.g"
{yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
case 129:
# line 337 "expanded.g"
{yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
case 130:
# line 338 "expanded.g"
{yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
case 131:
# line 339 "expanded.g"
{yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
case 132:
# line 340 "expanded.g"
{yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
case 133:
# line 341 "expanded.g"
{yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
case 134:
# line 342 "expanded.g"
{yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
case 135:
# line 343 "expanded.g"
{yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
case 136:
# line 344 "expanded.g"
{yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
case 137:
# line 345 "expanded.g"
{yyval = tree4(N_Unop,yypvt[-1],yypvt[-1],yypvt[-0]);} break;
case 147:
# line 355 "expanded.g"
{yyval = tree3(N_Create,yypvt[-1],yypvt[-0]) ;} break;
case 148:
# line 356 "expanded.g"
{Val0(yypvt[-0]) = putloc(Str0(yypvt[-0]),0);} break;
case 149:
# line 357 "expanded.g"
{yyval = tree2(N_Next,yypvt[-0]) ;} break;
case 150:
# line 358 "expanded.g"
{yyval = tree3(N_Break,yypvt[-1],yypvt[-0]) ;} break;
case 151:
# line 359 "expanded.g"
{if ((yypvt[-1])->n_type == N_Elist)
yyval = tree4(N_Invok,yypvt[-2],tree1(N_Empty) ,yypvt[-1]);
else
yyval = yypvt[-1];} break;
case 152:
# line 363 "expanded.g"
{yyval = yypvt[-1];} break;
case 153:
# line 364 "expanded.g"
{yyval = tree3(N_List,yypvt[-2],yypvt[-1]) ;} break;
case 154:
# line 365 "expanded.g"
{yyval = tree5(N_Binop,yypvt[-2],yypvt[-2],yypvt[-3],yypvt[-1]);} break;
case 155:
# line 366 "expanded.g"
{yyval = tree4(N_Invok,yypvt[-1],yypvt[-2],
tree3(N_List,yypvt[-1],tree1(N_Empty) )) ;} break;
case 156:
# line 368 "expanded.g"
{yyval = tree4(N_Invok,yypvt[-2],yypvt[-3],tree3(N_List,yypvt[-2],yypvt[-1])) ;} break;
case 157:
# line 370 "expanded.g"
{yyval = tree4(N_Invok,yypvt[-2],yypvt[-3],yypvt[-1]) ;} break;
case 158:
# line 371 "expanded.g"
{yyval = tree4(N_Field,yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
case 159:
# line 372 "expanded.g"
{yyval = int_leaf(N_Key,yypvt[-1],K_FAIL) ;} break;
case 160:
# line 373 "expanded.g"
{if ((key_num = klookup(Str0(yypvt[-0]))) == 0)
tfatal("invalid keyword",Str0(yypvt[-0]));
yyval = int_leaf(N_Key,yypvt[-1],key_num);} break;
case 161:
# line 377 "expanded.g"
{yyval = tree5(N_Loop,yypvt[-1],yypvt[-1],yypvt[-0],tree1(N_Empty) );} break;
case 162:
# line 378 "expanded.g"
{yyval = tree5(N_Loop,yypvt[-3],yypvt[-3],yypvt[-2],yypvt[-0]) ;} break;
case 163:
# line 380 "expanded.g"
{yyval = tree5(N_Loop,yypvt[-1],yypvt[-1],yypvt[-0],tree1(N_Empty) ) ;} break;
case 164:
# line 381 "expanded.g"
{yyval = tree5(N_Loop,yypvt[-3],yypvt[-3],yypvt[-2],yypvt[-0]) ;} break;
case 165:
# line 383 "expanded.g"
{yyval = tree5(N_Loop,yypvt[-1],yypvt[-1],yypvt[-0],tree1(N_Empty) ) ;} break;
case 166:
# line 384 "expanded.g"
{yyval = tree5(N_Loop,yypvt[-3],yypvt[-3],yypvt[-2],yypvt[-0]) ;} break;
case 167:
# line 386 "expanded.g"
{yyval = tree5(N_Loop,yypvt[-1],yypvt[-1],yypvt[-0],tree1(N_Empty) ) ;} break;
case 168:
# line 388 "expanded.g"
{yyval = tree4(N_Ret,yypvt[-0],yypvt[-0],tree1(N_Empty) ) ;} break;
case 169:
# line 389 "expanded.g"
{yyval = tree4(N_Ret,yypvt[-1],yypvt[-1],yypvt[-0]) ;} break;
case 170:
# line 390 "expanded.g"
{yyval = tree5(N_Loop,yypvt[-1],yypvt[-1],yypvt[-0],tree1(N_Empty) ) ;} break;
case 171:
# line 391 "expanded.g"
{yyval = tree5(N_Loop,yypvt[-3],yypvt[-3],yypvt[-2],yypvt[-0]) ;} break;
case 172:
# line 393 "expanded.g"
{yyval = tree5(N_If,yypvt[-3],yypvt[-2],yypvt[-0],tree1(N_Empty) ) ;} break;
case 173:
# line 394 "expanded.g"
{yyval = tree5(N_If,yypvt[-5],yypvt[-4],yypvt[-2],yypvt[-0]) ;} break;
case 174:
# line 396 "expanded.g"
{yyval = tree4(N_Case,yypvt[-5],yypvt[-4],yypvt[-1]) ;} break;
case 176:
# line 399 "expanded.g"
{yyval = tree4(N_Clist,yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
case 177:
# line 401 "expanded.g"
{yyval = tree4(N_Ccls,yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
case 178:
# line 402 "expanded.g"
{yyval = tree4(N_Ccls,yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
case 180:
# line 405 "expanded.g"
{yyval = tree4(N_Elist,yypvt[-1],yypvt[-2],yypvt[-0]);} break;
case 181:
# line 407 "expanded.g"
{
yyval = tree3(N_Create,yypvt[-0],yypvt[-0]) ;
} break;
case 182:
# line 410 "expanded.g"
{
yyval = tree4(N_Elist,yypvt[-1],yypvt[-2],tree3(N_Create,yypvt[-1],yypvt[-0]));
} break;
case 183:
# line 414 "expanded.g"
{Val0(yypvt[-0]) = putlit(Str0(yypvt[-0]),F_IntLit,0);} break;
case 184:
# line 415 "expanded.g"
{Val0(yypvt[-0]) = putlit(Str0(yypvt[-0]),F_RealLit,0);} break;
case 185:
# line 416 "expanded.g"
{Val0(yypvt[-0]) = putlit(Str0(yypvt[-0]),F_StrLit,(int)Val1(yypvt[-0]));} break;
case 186:
# line 417 "expanded.g"
{Val0(yypvt[-0]) = putlit(Str0(yypvt[-0]),F_CsetLit,(int)Val1(yypvt[-0]));} break;
case 187:
# line 419 "expanded.g"
{yyval = tree6(N_Sect,yypvt[-2],yypvt[-2],yypvt[-5],yypvt[-3],yypvt[-1]) ;} break;
case 188:
# line 421 "expanded.g"
{yyval = yypvt[-0];} break;
case 189:
# line 422 "expanded.g"
{yyval = yypvt[-0];} break;
case 190:
# line 423 "expanded.g"
{yyval = yypvt[-0];} break;
case 192:
# line 426 "expanded.g"
{yyval = tree4(N_Slist,yypvt[-1],yypvt[-2],yypvt[-0]) ;} break;
}
goto yystack; /* stack new state and value */
}